package xuesheng

import (
	"fmt"
	"sptc-kaoqingxitong/teacher"
)

// 1. 跨包，首字母大写
// 2. 不能循环引用。

// 钱包
var qianbao float32

// 吃饭 首字母大写，可以被跨包调用
func Chifan() bool {
	teacher.BangXueShengFuFei()
	fmt.Println("吃饭前的额度", qianbao)
	if qianbao <= 0 {
		fmt.Println(" 你没钱，先去充值吧")
		return false
	}
	fmt.Println("请选择菜单.1:蛋炒饭，2，炸酱面，3，回锅肉")
	var input int
	fmt.Scanln(&input)
	switch input {
	case 1:
		// 蛋炒饭
		if qianbao < 3 {
			fmt.Println("你消费不起蛋炒饭")
			return false
		}
		qianbao = qianbao - 3
	case 2:
		// zhajiaingmiain
		if qianbao < 7 {
			fmt.Println("你消费不起炸酱面")
			return false
		}
		qianbao = qianbao - 7
	case 3:
		// 回锅肉
		if qianbao < 10 {
			fmt.Println("你消费不起回锅肉")
			return false
		}
		qianbao = qianbao - 10
	}
	fmt.Println("吃完饭了， 剩余额度", qianbao)
	return true
}

// 首字母小写了， 不能被跨包调用
func chongzhi() {
	fmt.Println("请输入充值额度")
	var input float32
	fmt.Scanln(&input)
	if input <= 0 {
		fmt.Println("充值不能为负值")
		return
	}

	qianbao = qianbao + input
	fmt.Println("充值成功，现在的额度是:", qianbao)

}

// 上课 首字母大写，可以被跨包调用
func Shangke() {

}

// 报到
func Login() bool {
	var zzz person
	zzz.name = "佐野万次郎"
	zzz.age = 18
	zzz.pswd = "666"
	zzz.username = "zzz"

	var www person
	www.name = "龙宫寺坚"
	www.age = 18
	www.username = "www"
	zzz.friend = &www
	www.friend = &zzz

	var xxx student
	xxx.name = "坚仔"
	xxx.age = 18
	xxx.username = "xxx"
	// xxx.xuehao = "235689"

	fmt.Println("请输入用户名")
	var name string
	fmt.Scanln(&name)
	fmt.Println("请输入密码")
	var pswd string
	fmt.Scanln(&pswd)
	if name == "luolaoshi" && pswd == "123456" {
		fmt.Println("登录成功")
	} else {
		fmt.Println("登录失败")
		return false
	}
	qianbao = 10
	fmt.Println("是否需要充值,y代表要充值，n代表不充值")
	var chongzhiFou string
	fmt.Scanln(&chongzhiFou)
	switch chongzhiFou {
	case "y":
		chongzhi()
	case "n":
		fmt.Println("再见")
	}
	for {
		if Chifan() == false {
			break
		}
	}
}

type person struct {
	name        string
	username    string
	age         int
	pswd        string
	banji       string
	sex         string
	friend      *person
	MoneyPacket float32
}
type student struct {
	person
	xuehao string
}
